Systems and methods for automatically generating campaigns using advertising targeting information based upon affinity information obtained from an online social network

ABSTRACT

Systems and methods for automatically targeting advertising on an online social network in accordance with embodiments of the invention are disclosed. One embodiment of the invention includes detecting affinities between a member profile and one or more keywords based upon data describing activities associated with the member profile, generating a database containing the member profiles and associating detected affinities between member profiles and keywords, identifying member profiles that are associated with an affinity to at least one offer keyword and other keywords for which the identified member profiles have an associated affinity, weighting the importance of the identified member profiles in accordance with an advertising strategy, selecting a set of targeting keywords for which the identified member profiles have an associated affinity, and providing the targeting keywords so that an online social network displays the specific offer to its members.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 13/331,950, filed Dec. 20, 2011, that claims priority as aContinuation-In-Part to U.S. patent application Ser. No. 13/277,209,filed Oct. 19, 2011, that claims priority to U.S. Provisional PatentApplication Ser. No. 61/394,484, filed Oct. 19, 2010. U.S. patentapplication Ser. No. 13/331,950 also claims priority to U.S. ProvisionalPatent Application Ser. No. 61/425,235, filed Dec. 20, 2010. Thedisclosures of each of U.S. patent application Ser. No. 13/331,950, U.S.patent application Ser. No. 13/277,209, U.S. Provisional PatentApplication Ser. No. 61/394,484 and U.S. Provisional Patent ApplicationSer. No. 61/425,235 are all incorporated by reference herein in theirentirety.

FIELD OF THE INVENTION

The present invention generally relates to online advertising and morespecifically to the targeting of display advertising on social networks.

BACKGROUND

Recent advances in online advertising have most prominently been in thefield of behavioral targeting. Both web sites and networks tailor theironline experiences to individuals or classes of individuals throughbehavioral targeting. When employed by advertising networks (“adnetworks”), behavioral targeting matches advertisers that have a certaindesired target audience with websites that have been profiled to draw aspecific audience. One of the challenges in behavioral targeting isdetermining the true extent of the match between a desired audience andthe actual audience drawn by a specific web page.

Online social networks, such as the Facebook service provided byFacebook, Inc. of Palo Alto, Calif., are ad networks that have very goodknowledge of the visitors to specific pages within the online socialnetwork. In order to visit a page within a social network, one typicallyneeds to be a member of the social network. In addition, members ofsocial networks typically provide demographic information andinformation concerning interests in order to personalize their behavior.For example, a Facebook member could indicate that they are interestedin ski vacations to Lake Tahoe by clicking a “Like” button featured on aLake Tahoe website. A simple advertising strategy would be to target themembers of an online social network who have previously indicatedinterest in the product or service being offered by the advertisement. Aflaw with this strategy, however, is that many members that areinterested in the advertised offer are not being targeted, because theyhave not previously indicated a desire for the products or services.More sophisticated advertising strategies attempt to build a demographicand/or geographic profile of a member that will be interested in theadvertised offer and target the advertising to members matching thedemographic and/or geographic profile. A campaign can be furthertargeted using keywords to narrow the audience for an ad to people whohave interests, which correlate with the advertised offer. In many adnetworks, advertisers can bid on keywords. Therefore, targeting usersassociated with a first keyword can cost significantly more money thantargeting users associated with a second keyword. Returning to theexample of an advertiser of ski travel packages to Lake Tahoe, thequestion becomes: who are others that may be interested in a Lake Tahoevacation package beyond those that have specifically expressed aninterest in such a vacation? Probably those who like specific skiresorts would be good candidates, and possibly also those who likespecific ski manufacturers. What about those who like gambling? Sincethe Lake Tahoe area also features a number of casinos, the desiredaudience for the offer could include members that like to ski and alsolike to play poker. But not all who like to play poker are goodcandidates for such a vacation package, and as such advertisementbudgets may not be wisely spent on such an audience. Therefore,challenges exist in selecting keywords that appropriately targetspecific offers to members of a social network.

SUMMARY OF THE INVENTION

Systems and methods in accordance with embodiments of the invention canautomatically generate advertising campaigns on an online social networkusing affinity information collected concerning members of one or moreonline social networks. One embodiment of the invention includes atargeting server configured to obtain data from at least one server thatforms part of an online social network, where the obtained datadescribes member profiles of members of the online social network andactivities performed on the online social network that are associatedwith the member profiles. In addition, the targeting server isconfigured to detect affinities between a member profile and one or morekeywords based upon data describing activities associated with themember profile, the targeting server is configured to generate adatabase containing the member profiles and associating detectedaffinities between member profiles and keywords, the targeting server isconfigured to identify member profiles within the database that areassociated with an affinity to at least one offer keyword, the targetingserver is configured to identify other keywords for which the identifiedmember profiles have an associated affinity, the targeting server isconfigured to receive an advertising strategy and to weight theimportance of the identified member profiles in accordance with theadvertising strategy, the targeting server is configured to select a setof targeting keywords from the set of keywords for which the identifiedmember profiles have an associated affinity based upon the weightedimportance of the identified member profiles, and the targeting serveris configured to provide the targeting keywords to a server that is partof the online social network so that the online social network displaysthe specific offer to members of the online social network targetedusing the targeting keywords.

In a further embodiment, the targeting server is configured to score theaffinity between a member profile and one or more keywords within datadescribing an activity associated with the member profile.

In another embodiment, the targeting server is configured to determinesentiment related to one or more keywords within data describing anactivity associated with a member profile.

In a still further embodiment, the targeting server is configured todetermine intent related to one or more keywords within data describingan activity associated with a member profile.

In still another embodiment, the targeting server is configured toselect a set of keywords by clustering the member profiles identified ashaving associations with an affinity to at least one offer keyword.

In a yet further embodiment, the targeting server is configured toassign a feature vector to each of the identified keywords and toestimate the performance of the feature vector in targeting the specificoffer to the desired audience.

In yet another embodiment, the feature vector assigned to each of theidentified keywords includes information concerning trends associatedwith the keyword.

In a further embodiment again, the information concerning trendsassociated with the keyword include amplitude and frequency informationrelated to at least one peak in the frequency spectrum of a keyword.

In another embodiment again, the frequency spectrum of the keyword isobtained by performing a discrete Fourier transform on counts of thenumber of occurrences of the keyword during periodic time intervals.

In a further additional embodiment, the feature vector of a keywordincludes at least one value indicative of a relationship between thekeyword and at least one of the offer keywords.

In another additional embodiment, the feature vector of a keywordincludes at least one value indicative a relationship between thekeyword and at least one cluster of member profiles.

In another further embodiment, the targeting server is configured toestimate the performance of the feature vector in targeting the specificoffer to the desired audience using a classifier.

In still another further embodiment, the targeting server is configuredto estimate performance by estimating the click-through rate ofadvertising targeted using the keyword.

In yet another further embodiment, the targeting server is configured toselect a set of targeting keyword and demographic informationcombinations.

In another further embodiment again, the targeting server is configuredto select a set of optimal targeting keywords using set completion.

Another further additional embodiment, includes indexing member profileswithin one or more social networks for affinity to keywords using atargeting system that retrieves data concerning member profiles andactivities from servers within an online social network, identifyingmember profiles that have affinity for at least one offer keyword usingthe targeting system and the index, identifying additional keywords forwhich the identified member profiles have affinity using the targetingsystem and the index, weighting member profiles in accordance with aspecified advertising strategy, determining a set of keywords thattarget a desired audience based upon the identified additional keywordsand the weighted member profiles using the targeting server, andtargeting presentation of advertisements for the specific offer tomembers of an online social network using the online social network andthe targeting keywords determined by the targeting server.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a network diagram showing an ad targeting system configured togenerate targeting information for offers presented via an online socialnetwork in accordance with an embodiment of the invention.

FIG. 2 is a set diagram conceptually illustrating selection of keywordsintended to reach a desired audience on a social network.

FIG. 3 is a flow chart showing a process for targeting advertising to adesired audience on a social network in accordance with an embodiment ofthe invention.

FIG. 4 is a flow chart showing a process for indexing user profiles foraffinity to specific keywords in accordance with an embodiment of theinvention.

FIG. 5 is a flow chart illustrating a process for identifying whether ashort message indicates affinity for a specific keyword in accordancewith an embodiment of the invention.

FIG. 5A is a flow chart illustrating another process for identifyingwhether a short message indicates affinity for a specific keyword inaccordance with an embodiment of the invention.

FIG. 6 is a flow chart illustrating a process for determining a set ofkeywords that optimally covers a desired audience for an offer inaccordance with an embodiment of the invention.

FIG. 7 is a flow chart illustrating a process for determining a set ofkeywords that optimally covers a desired audience for an offer inaccordance with an embodiment of the invention.

FIG. 8 is a flow chart illustrating a process for automatically buildingan advertising campaign using an advertising strategy and targetinginformation generated in accordance with embodiments of the invention.

DETAILED DESCRIPTION OF THE INVENTION

Turning now to the drawings, systems and methods for automaticallygenerating advertising campaigns using affinity information collectedconcerning members of one or more online social networks and anadvertising strategy in accordance with embodiments of the invention areillustrated. Affinity information is information concerning whether amember is positively (or negatively) disposed to something or someone.In many embodiments, the advertising targeting system identifies allkeywords with which a desired audience is likely to have affinity andautomatically determines a set of keywords for targeting an offer to thedesired audience. In various embodiments, keywords with which a desiredaudience is likely to have affinity are automatically determined byidentifying users that have affinity with a specific keyword(s) that arethe subject of the offer and identifying other keywords with which theidentified users also have affinity. Stated another way, if a userexpresses an affinity for an offer (or a keyword with the offer), thenother keywords for which the user has affinity can be utilized to targetadvertisements to users that are also likely to have an affinity to theoffer. In several embodiments, a set of targeting keywords is determinedby estimating the performance within an advertising campaign ofadvertisements targeted using a specific keyword or keyword combination.In a number of embodiments performance is estimated by estimatingclick-through rates for advertisements targeted using a specific keywordor keyword combination using a classifier that takes as inputs a featurevector for each keyword or keyword combination that is measure of theways in which the keyword or keyword combination is relevant to membersthat have previously expressed affinity for the subject of the offer oradvertisement. In many embodiments, the feature vector captures trendinformation with respect to the keyword by performing frequency spectrumanalysis on keyword frequency measurements taken over a period of time.In a number of embodiments, discrete Fourier transforms are utilized toperform frequency analysis. In many embodiments, the set of keywords isexpanded to reach a broader audience by identifying additional keywordsthat are semantically similar to the keywords in the optimal set ofkeywords. Processes for determining the affinity of members of one ormore social networks to a set of keywords and automatically determininga set of targeting keywords for targeting specific offers to members ofthe social network can be performed asynchronously.

Once affinity data has been collected, an advertising campaign creationprocess can commence. The advertising campaign creation processtypically involves a user providing instructions to build advertisementsin accordance with a strategy. Possible strategies include but are notlimited to targeting fans of an offer (i.e. members of the socialnetwork that have expressed strong affinity to the offer) or targetmembers interested in a competitor (i.e. members of the social networkthat have expressed affinity to a competitor) can be utilized to weightthe importance of members when generating targeting keywords. Thestrategies result in a number of advertising targeting groups, each withcontextual information concerning the words and phrases used by thataudience. The user can provide advertising content, which may beinspired by the adjectives and phrases surfaced from each group. Thesystem has already grouped a naturally occurring target audience, andallows the user to build a creative using a voice that resonates withthe audience. Once the advertising content is created, theadvertisements can be placed on an advertising network using thecollected targeting information. Systems and methods for determining theaffinity of members of an online social network with specific keywords,for automatically determining an optimal set of keywords for targetingan offer, and for automatically building an advertising campaign inaccordance with embodiments of the invention are discussed furtherbelow.

Advertising Targeting

An advertising targeting system in accordance with an embodiment of theinvention is illustrated in FIG. 1. In the advertising targeting system10, users are able to utilize network devices 12 that are network 14connected to communicate with servers 16 of one or more online socialnetworks. A social network is a term that can be used to describe anyonline service where individual users can generate and/or uploadcontent. In many instances, users can utilize an online social networkto participate in the creation, review, and/or distribution of content.While the term online social network is commonly used to describe siteslike the Facebook service provided by Facebook Inc. that have a highlysocial component, the term is equally applicable to an e-commercewebsite that provides the ability for users to post reviews and/or anyother sites that allow users and/or members to post any form of content.Typically, an online social network includes a database 18 containingprofile pages of members of the online social network that is updated inreal time by user activities such as status updates, and various otherforms of content uploaded to the online social network via users. Inmany instances, APIs enable third parties to obtain information or datafrom the online social network concerning member profiles and activitiesperformed by members (i.e. activities associated with a member profile)and provide applications such as online social games via an onlinesocial network. In the illustrated embodiment, a targeting server 20 isconfigured to access profile information including activities associatedwith the profiles from the servers within the online social network viasuch APIs or similar mechanisms. The data obtained by the targetingserver can be processed and utilized to build a database of memberprofiles including demographic information and associate affinities withspecific keywords with member profiles. In many embodiments, thetargeting server generates affinity information for a subset of themembers of the online social network by processing the activity dataassociated with the member profiles of the subset of members of theonline social network. The larger the size of the subset, the morelikely that subset is representative of all of the members of the onlinesocial network. In several embodiments, the targeting server attempts togenerate affinity information for all of the members of the onlinesocial network. The targeting server 20 (or another related server) canbe utilized to automatically generate an advertising campaign byselecting member profiles according to an advertising strategy and thenbuilding targeting data to target members in accordance with theadvertising strategy.

When an advertiser attempts to present an offer to members of the onlinesocial network, the advertiser can utilize a computing device 24 toprovide information concerning the offer to the targeting server 20 andthe targeting server can generate a listing of targeting keywords thatwill optimally target the offer to members of the online social networkbased upon the affinity information and an advertising strategy definedby the user. In many embodiments, an optimality criterion is used in thegeneration of the targeting keywords that attempts to identify a set ofkeywords that will reach a desired audience. The advertising strategycan be utilized to define weights or filters to apply to member profileswhen generating targeting keywords. In several embodiments, theoptimality criterion also considers other objectives including (but notlimited to) minimizing the extent to which individual members of theonline social network are targeted multiple times by the targetingkeywords and/or the extent to which members that are unlikely to beinterested in the offer are targeted by the targeting keywords. In manyembodiments, the optimality criterion also attempts to minimize thenumber of keywords included in the list of targeting keywords. In anumber of embodiments, the optimality criterion utilizes informationconcerning the relative cost of using individual keywords in targetedadvertising and attempts to identify the set of keywords that will reachthe desired audience while minimizing multiple targeting of individualmembers and the targeting of members disinterested in the offer at thelowest cost. In several embodiments, a classifier such as (but notlimited to) a neural network is utilized to predict the impact of akeyword (e.g. predicting click-through rates) and these predictions areutilized to select an optimal set of targeting keywords. Predictingkeyword impact typically depends upon the requirement of a specifictargeting system and the offers targeted by the targeting system.

As is discussed further below, a variety of criteria can be utilized inthe selection of targeting keywords based upon affinities expressed byindividual users. It should be appreciated, that the term optimality inthis context refers to optimization with respect to a specific criterionused in the selection of the keywords. Indeed, the complexity ofidentifying targeting keywords in the context of online social networksarises due to the fact that the desired audience is unknown. Therefore,any optimality criterion can only ever provide a “best estimate” basedupon assumptions inherent within the specified criterion.

Selecting Keywords Covering a Desired Audience

Targeting the presentation of offers to members of an online socialnetwork is a complex problem. Perfect targeting information would onlypresent the offer to members of the online social network that further adefined advertising strategy, would not present the offer to any membersthat were not interested in the offer, and can potentially involveallocating ad impressions evenly across the desired audience. Obtainingperfect targeting for presentation of an offer via an online socialnetwork is difficult to say the least, as online social networks rarelydirectly provide information concerning the current interests ofmembers. In the context of online search advertising, advertising can betargeted based upon the expressed desire of the user for information ona specific topic. Members of online social networks can express affinityfor a specific product or service via a mechanism such as a statusupdate or a short message (e.g. a “Tweet” via the Twitter serviceprovided by Twitter, Inc. of San Francisco, Calif.). As noted above,however, the set of members of an online social network that are likelyto be interested in a specific offer typically is not limited to themembers that have previously expressed an interest in the offeredproduct or service. Therefore, targeting systems in accordance with manyembodiments of the invention attempt to identify a targeting combinationthat is likely to target advertising to a desired audience based atleast upon the affinity to keywords of members of an online socialnetwork that have previously expressed affinity to the offer. Processesfor targeting keywords based upon the affinity to specific keywords ofmembers of a social network that have previously expressed affinity foran offer in accordance with embodiments of the invention are discussedbelow.

Processes for Targeting Advertising Using Optimal Keywords

In order for an advertising targeting system in accordance with anembodiment of the invention to select targeting keywords that optimallytarget an offer or advertisement to a desired audience in accordancewith defined a defined advertising strategy, the targeting systemdetermines the affinity to specific keywords of members of an onlinesocial network that have previously expressed affinity to the offer. Aprocess for targeting advertising to a desired audience by identifyingthe affinity to keywords of members of a social network that havepreviously expressed affinity to an offer in accordance with anembodiment of the invention is illustrated in FIG. 3. The process 100includes indexing (102) member or user profiles within one or moresocial networks for affinity to keywords. Once a database has beenobtained that captures the affinity between specific members andspecific keywords, members are identified that have expressed affinityto the subject of a specific offer (104) and then other keywords forwhich those members have expressed affinity are identified (105). Inseveral embodiments, the process assumes that the keywords for which theidentified members have expressed affinity target other members of thedesired audience (i.e. members of the social network likely to beinterested in the offer). In many other embodiments of the invention,the keyword(s) utilized to determine affinities between a member and anoffer may generated by hand or generated automatically using naturallanguage processing techniques to analyze the offer and web pages orother sites associated with the offer and/or analysis of the affinitiesof members who have historically accepted such offers. In manyembodiments, the affinity of a member to an offer is determined bydetermining the affinity of the user to the keyword or keywords that isthe subject of the offer or advertisement (e.g. a title of a movie).

Based upon all of the keyword affinities expressed by the membersidentified using the initial list of keywords, a set of targetingkeywords is determined (106) to target the desired audience. In manyembodiments, the members used to generate the initial list of keywordsare weighted in accordance with a defined advertising strategy to obtaintargeting keywords that are more likely to target members that are thefocus of the advertising strategy. In many embodiments, the set oftargeting keywords can be determined by estimating the likely clickthrough rates of advertisements targeted using specific targetingkeywords. Advertising is then presented to members of the online socialnetwork targeted (110) using the targeting keywords and/or otherdemographic information.

Although a specific process for targeting advertising is described abovewith respect to FIG. 3, any of a variety of processes can be utilized totarget advertising using keywords selected based upon at least theaffinity to specific keywords of members of one or more social networksthat have previously expressed affinity to the subject of theadvertisement that are appropriate to a specific application inaccordance with embodiments of the invention. Processes for determiningaffinity between members and a specific keyword and for predicting theeffectiveness of specific keywords in targeting a desired audience arediscussed further below.

Indexing User Affinities

In many embodiments, an index of member affinities is built in responseto a request for targeting information based upon a specific offer. Inseveral embodiments, however, the process of indexing affinitiesexpressed by users is performed continuously to reflect the continuousactivity of members of online social networks and the database is thenutilized on an ongoing basis by an advertising targeting system. Aprocess for indexing member profiles for affinity to specific keywordsis illustrated in FIG. 4. The process 120 includes identifying (122)members mentioning keywords via an online social network. The activityof the member is then inspected (124) to identify (126) entities forwhich the member has expressed affinity. In several embodiments, theadditional activity is requested from the online social network via anAPI. A member profile is then created and/or updated (128) within adatabase to include the identified affinities. In several embodiments,additional information is collected in the database including but notlimited to First Name, Last Name, User ID, the service (where multipleonline social networks are indexed in a single database), age, sexand/or geographic location. In this way, the database provides an up todate list of all of the affinities of members identified using theinitial set of keywords. As is discussed further below, these affinitiesthen become the basis for determining targeting information inaccordance with an advertising strategy.

Identifying Expressions of Affinity

Any of a variety of processes in accordance with embodiments of theinvention can be utilized to analyze the activities of users of anonline social network to determine whether specific members areexpressing affinities for a particular keyword. One process fordetermining whether an activity expresses affinity with a specifickeyword in accordance with an embodiment of the invention is illustratedin FIG. 5. The process 130 involves analyzing data describing activitiesperformed on an online social network to determine (132) if the activityinvolves, references, and/or relates to a named entity, such as aperson, place or thing. In the context of online social networks, anactivity includes (but is not limited to) commenting, voting, reviewing,rating, purchasing, launching, listening, propagating content, viewingcontent and/or any other interaction supported by a specific onlinesocial network. In many embodiments, the determination is made byidentifying whether the activity includes any word that matches adatabase of named entities such as the Freebase graph of people, placesand things provided by Google, Inc. In the illustrated embodiment, theset of keyword affinities that can be indexed is limited to namedentities. In other embodiments, a more expansive or a more restrictiveset of keywords can be indexed. If the activity does not include a namedentity, then the process determines (134) that no affinity is expressedby the activity. In the event that the activity includes a named entity,then the process determines (135) whether the activity expressesaffinity for the named entity. In several embodiments, affinity tokeywords is determined based upon sentiment and/or intent expressed byan activity performed by the member of the social network (seediscussion below). In many embodiments of the invention, an affinityscore is determined utilizing a process similar to the processesdisclosed in U.S. patent application Ser. No. 13/103,990 entitled“Systems and Methods for Measuring Consumer Affinity and PredictingBusiness Outcomes Using Social Network Activity” to Benyamin et al.,filed Mar. 9, 2011 the disclosure of which is incorporated by referenceherein in its entirety. The affinity score can be combined with otherfactors, including a threshold factor based on the specific keyword.

In many other embodiments, a determination of affinity is expressedbased upon an expression of a positive (or negative) sentiment and/or anexpression that is “intentful” (i.e. expresses an intention to performan action with respect to the named entity). An embodiment of a processthat attempt to determine and categorize affinity in accordance with anembodiment of the invention is shown in FIG. 5A. In the event that theactivity expresses no clear affinity, the activity is classified (134)as not expressing an affinity. In the event a positive affinity isexpressed, the activity is classified (138) as expressing a positiveaffinity with respect to the named entity. As noted above, theexpression of positive affinity to the named entity can then beassociated with the targeting system's profile of the member responsiblefor the activity. Similarly, when a negative affinity is expressed, theactivity is classified (140) as expressing a negative affinity withrespect to the named entity and a negative affinity to the named entitycan be associated with the member's profile in the targeting system.

Although specific processes are illustrated in FIG. 5 and FIG. 5A fordetermining whether an activity contains an expression of affinity withrespect to a specific keyword, other processes appropriate to therequirements of a specific application, including but not limited toprocesses that only detect positive affinity, can also be utilized inaccordance with embodiments of the invention. Various processes fordetecting sentiment and intent with respect to a specific keyword arediscussed further below.

Determining Sentiment

In a number of embodiments, sentiment can be determined by building astatistical classifier. A statistical classifier can be constructedusing a training data set in which each activity is classified asexpressing a positive sentiment, negative sentiment, and in manyinstances no clear sentiment. Words in the training data set ofactivities can then be matched with a set of strongly polarizingsentiment words, which may be generated by hand and can includeemoticons (i.e. combinations of characters that form symbols used toindicate sentiment and/or emotion). Examples of strongly polarized wordsinclude but are not limited to “love”, “hate”, “adore”, and “despise”.Depending upon context, such words do not necessarily convey positive ornegative sentiment (e.g. “I could never love . . . ”). A list ofindividual words and word pairs can then be generated ignoring thestrongly polarized words and the named entity in each activity. Theactivities can then be provided to a sentence parser, such as theStanford parser distributed by the Stanford Natural Language ProcessingGroup at Stanford University, to generate a list of grammaticalrelationships between the words in the list and the named entity. Thelists of single words, word pairs, and grammatical relationships canthen be used to train a statistical classifier. In many embodiments, thestatistical classifier is a maximum entropy classifier. In a number ofembodiments, other types of statistical classifiers including but notlimited to a Bayesian or Naïve-Bayesian classifier can be utilized.

In several embodiments, separate statistical classifiers can be createddepending upon categorization of the topic of a specific activity. Forexample, separate classifiers can be created for the categories sports,music, and politics. In many instances, different words and differentword relationships are used to express sentiment in different contentsand these differences can be captured using the different statisticalclassifiers. The categorization of short messages is described in U.S.patent application Ser. No. 12/781,799, the disclosure of which isincorporated by reference herein in its entirety.

Identifying “Intentful” Expressions

In many embodiments, a determination is made concerning whether anactivity expresses intent with respect to a named entity by comparingthe words in the activity to a list of intentful verbs. In severalembodiments, the topic of the activity is determined and a separate listof intentful verbs is provided for each topic. In a number ofembodiments, the activity is also provided to a sentence parser toidentify the named entity that is the subject of the intentful verb. Inother embodiments, any of a variety of techniques can be used togenerate a list of intentful verbs and/or to determine whether intentwith respect to a specific named entity is expressed within an activity.

Determining an Optimal Set of Keywords for Targeting an Offer

A process for determining a set of targeting keywords for targeting anoffer to members of an online social network using informationconcerning affinities between specific users and specific keywords inaccordance with an embodiment of the invention is illustrated in FIG. 6.As noted above, the targeting process involves identifying members ofone or more social networks that have expressed affinity for a keywordor list of keywords associated with an offer and then determining a listof additional keywords for which the identified members have alsoexpressed affinity (162). In many embodiments, after the database ofaffinities between specific members and specific keywords has beencreated the database can be queried to determine the members targeted byspecific keywords or specific combinations of keywords. The identifiedmembers can be clustered. In many embodiments, clustering providesinsights concerning distinct segments of the desired audience and canfacilitate the selection of a set of targeting keywords that targetmembers of online social networks falling within each of the segmentsand not just segments strongly represented by the members identifiedusing the offer keyword(s).

Typically, a database generated in accordance with embodiments of theinvention is sparse and so the dimensionality of the data within thedatabase concerning the identified members can be reduced (164). In manyembodiments of the invention, the dimension of the group of membersretrieved can be reduced using random projection. In other embodimentsof the invention, any of a variety of processes appropriate for reducingthe dimensionality of a dataset can be used to reduce the dimensionalityand improve the ability of the process to cluster members that haveexpressed affinity to the object.

A threshold can be applied to the group of members retrieved (166) tofurther reduce the size of the group considered by the process. Inseveral embodiments of the invention, the threshold can be based onpositive affinity for a given keyword or combination of keywords. In anumber of embodiments of the invention, the threshold can be based on anegative affinity for a given keyword or combination of keywords. Inseveral embodiments of the invention, the threshold can be based ondemographic attributes. In many embodiments, the threshold can be basedon topics which the members have previously discussed. In still otherembodiments, the threshold can be based on a combination of factors.

Members can be clustered together into groups based on demographicinformation and their affinity for specific keywords or combinations ofkeywords (168). In many embodiments of the invention, a growinghierarchical self-organizing map is used to cluster members. In otherembodiments, any of a variety of clustering algorithms appropriate to aspecific application can be utilized in accordance with an embodiment ofthe invention. During clustering, groups of members can be formed basedupon demographic information and specific keywords or groups of keywordsfor which the members have affinity. The clusters can then be utilizedto score keywords (or keyword combinations) to generate a set ofdemographic information and/or keywords that target a desired audience.In many embodiments, a keyword or keyword combination is scored bygenerating a feature vector that describes relevant characteristics ofthe keyword. For example, the feature vector can include the Jaccardindex of the keyword as a measure of the extent to which the memberstargeted by the keyword includes members that have previously expressedaffinity for the subject to an offer or advertisement. The featurevector can be dependent upon the characteristics of the offer (i.e. theoffer keyword(s)), the cluster, the keyword itself and/or otherkeywords. Relating the keyword to the cluster in the feature vector canenable a classifier to determine the extent to which a keyword isrelevant to targeting an offer to a specific group within the desiredaudience. Therefore, keywords that particularly resonate with a specificdemographic (for example women aged 35-44) can be identified andutilized in the targeting of advertising. The ability to targetadvertising to specific segments making up a desired audience can beuseful where the members that have expressed affinity to an offerkeyword(s) are not evenly distributed across the segments of the desiredaudience. In addition, the clusters enable the selection of set ofkeywords that target each of the segments of the desired audience andreduces the likelihood that targeting keywords will be selected thatstrongly target discrete segments within the desired audience. Thefeature vector need not be limited to a single measure and any of avariety of measures can be utilized to measure the extent to which akeyword targets a portion of a desired audience in accordance withembodiments of the invention. In this way, the clusters provide insightinto the keywords that are most likely to target members of a desiredaudience and, as is discussed further below, can be used to selecttargeting demographic information and/or keywords for use in targetingan advertising campaign. The set of targeting keywords can then bereturned (170) by the targeting system and provided to the online socialnetwork by the advertiser to enable the targeting of the offer.

Trend Data

By looking at all the activities logged over a period of time,observations can be made concerning underlying trends. In severalembodiments, trends are detected by looking at the frequency ofoccurrence of each unique word contained in observed activities. In manyembodiments, the frequencies of two or more words are analyzed todetermine the number of mentions of a complete phrase. With the countsof words or phrases over a discrete period of time, a Discrete FourierTransform can be performed on the time series of each word. Theresulting spectrum can be used to show the presence of low, medium orhigh frequency trends.

Low frequency trends indicate some fairly consistent use of a word, suchas a word commonly used in conversation, and these words bear littleinformation. High frequency trends indicate a significant use of a wordover the time period analyzed. For example, if there was a big sale oncars, then the word “sale” would generate a large spike on the day thesale was announced. In many instances, these trends may be disregarded.Medium frequency trends can provide a great deal of informationconcerning words or phrases that come in and out of usage. For example,if there was a recall on a specific model of car, then phrases like“safety concerns” would appear with varying rates. In this way, mediumfrequency trend information obtained by performing a Discrete FourierTransform can be utilized to single out interesting and not readilyapparent trends. In many embodiments, the frequency and amplitude of akeyword is included as part of the feature vector of the keyword.

Although specific processes are described above for identifying trends,any of a variety of processes including (but not limited to) processesthat use various techniques to determine counts and/or frequencies ofoccurrence of keywords can be utilized in accordance with embodiments ofthe invention.

Selecting Targeting Keywords

A variety of techniques can be utilized to identify keywords for whichmembers of a desired audience are likely to have affinity. In manyembodiments, specific targeting keywords are selected from the group ofkeywords for which a desired audience is likely to have affinity byestimating the performance of the keywords with respect to a specificadvertising campaign and then selecting the highest performing keywords.In a number of embodiments, the performance of a specific keyword orcombination of keywords within a campaign is determined using aclassifier that is trained to predict the performance of keywords withina campaign based upon feature vectors assigned to the keywords using aprocess similar to any of the processes outlined above. In manyembodiments, the performance of a targeting keyword can be defined asthe click-through rate for advertisements displayed within a socialnetwork based upon the targeting keywords. In several embodiments aneural network is utilized to score the expected click-through rate ofkeywords based upon their feature vectors. The click-through ratepredictions in combination with the budget for the advertising campaigncan be utilized to determine the keywords and/or keyword combinationsthat will reach the largest audience.

In the event that the identified keywords and/or keyword combinationsare unlikely to reach a sufficiently large number of members of thesocial network, then the set of targeting keywords that the classifierestimates will perform well in the advertising campaign can be utilizedto identify additional targeting keywords. In a number of embodimentsthe targeting system can run an initial campaign with the objective ofstimulating additional activity with respect to the subject of thecampaign. The additional activity contributes to an expanded set of datathat can provide additional insights into the keywords for which membersof the desired audience are likely to have affinity. In manyembodiments, the targeting keywords are utilized to identify similarkeywords that can be utilized as targeting keywords. In severalembodiments, webpages containing semantic information concerning atargeting keyword or a combination of targeting keywords can beprocessed using natural language processing techniques to identifykeywords that have the same or a sufficiently similar meaning to beuseful in targeting advertising. For example, a targeting system canreview a Wikipedia entry related to a keyword or keyword combination andidentify other named entities on the Wikipedia pages. The affinity ofmembers in the desired audience to these keywords can be measured. Inother embodiments, a predetermined number of web pages can be processedand the affinity of members within the desired audience to entitieslisted on the web pages measured.

Although specific processes are discussed above with respect to theselection of targeting keywords from a set of keywords that are likelyto identify members of a desired audience, any of a variety of processesappropriate to a specific application can be utilized in accordance withan embodiment of the invention.

Targeting Using Set Covering

Targeting systems in accordance with embodiments of the invention aredescribed above that identify members of social networks that havepreviously expressed an affinity for a particular offer and use thatinformation to determine targeting keywords that are likely to targetthe entire audience of members of the social network(s) that are likelyto be interested in a particular offer. In many embodiments, thetargeting systems build an optimal targeting combination using a variantof a process known as “set covering”. A “set covering” problem istypically regarded as being any problem that can be formulated in termsof a given universe including a family of subsets within the universe,where the solution involves determining the minimum number of subsetsthat cover the entire universe. The targeting problem is more complex inthat the desired audience is an unknown subset of the universe ofmembers, and the subsets associated with each of the keywords areusually approximated based upon a sample of the members that make up theuniverse of members. However, similarity exists in that the goal of thetargeting problem is to select the subsets (i.e. the keywords) thatcover what is estimated to be the desired audience in accordance with apredetermined optimality criterion.

The formulation of keyword targeting as a variant of the set coveringproblem is illustrated in FIG. 2. An estimate of the desired audience(A) is indicated by a dashed line and members targeted by keywords B₁, .. . , B₁₀ are indicated by the sets B₁, . . . , B₁₀. In the standard setcovering problem, the objective is simply to span the universe using thesmallest number of subsets. When selecting targeting keywords, theoptimality problem can be significantly more complex as certain keywordscan be more expensive, overlaps between the members targeted by specifickeywords can be desirable and keywords that target significant numbersof members that are not part of the desired audience can also beundesirable.

In a number of embodiments, targeting keywords can be selected byselecting the keywords (i.e. B₁, . . . B_(n)) that minimize thefollowing cost function:

${Score} = {{A} - {\sum\limits_{n}^{\;}\; {{AB_{n}}}} + {\sum\limits_{n,m}^{\;}\; {{B_{m}B_{n}}}} + {\sum\limits_{n}^{\;}\; \left( {{B_{n}} - {{AB_{n}}}} \right)}}$

The above cost function measures the extent to which the keywords targetthe desired audience. The score is decreased by the extent to which thekeywords cover the desired audience (i.e. the second term of the costfunction) and the score is increased by the extent to which specifickeywords target the same people (i.e. the third term of the costfunction). The score is also increased by the extent to which specifickeywords target people, who are not within the desired audience (i.e.the fourth term of the cost function). Ideally, a set of keywords wouldonly target the desired audience, and the keywords would not target anyof the same people. In which case, the score would be 0. Although aspecific cost function is presented above other cost functions can beutilized as appropriate to the requirements of a specific application inaccordance with embodiments of the invention.

As noted above, many ad networks operate on an auction model, where theprice paid for advertising is determined by competition with otheradvertisers. Targeting systems in accordance with embodiments of theinvention can store the cost (Cn) associated with each keyword for whicha user has expressed affinity and can use cost as a criterion whenselecting targeting keywords. In several embodiments, the optimalitycriterion includes a cost function that accounts for the cost ofspecific keywords and/or errors in the approximations of the set ofmembers that are targeted by specific keywords such as, but not limitedto, the following cost function:

${Score} = {{A} - {\sum\limits_{n}^{\;}\; {C_{n} \cdot {{A\bigcap B_{n}}}}} + {\sum\limits_{n,m}^{\;}\; {{B_{m}\bigcap B_{n}}}} + {\sum\limits_{n}^{\;}\; \left( {{B_{n}} - {{A\bigcap B_{n}}}} \right)} + {E \cdot N}}$

where N is the number of keywords used to cover the desired audience.

Any of a number of known algorithms can be utilized in the optimizationof the above cost functions including a greedy algorithm and otheralgorithms that produce acceptable although potentially sub-optimalsolutions with reduced processing overhead compared to an algorithm thatproduces an optimal solution.

Although specific cost functions and optimization techniques arediscussed above, alternative cost functions including, but not limitedto, cost functions that include after the fact information such as adperformance can also be utilized in accordance with embodiments of theinvention. Processes for selecting targeting keywords and for estimatingmembers targeted by specific keywords are discussed further below.

A process for determining an optimal set of keywords for targeting anoffer to members of an online social network using informationconcerning affinities between specific users and specific keywords inaccordance with an embodiment of the invention is illustrated in FIG. 7.As noted above, the targeting process involves determining a list of allkeywords for which members identified by an initial set of key wordsrelated to an offer have expressed affinity. The process 7160 involvesdetermining (7162) the number of members that have expressed affinity toeach keyword on the list and determining (7164) the number of membersthat have expressed affinity for each pair of keywords on the list.These counts can then be used in combination with other information,including but not limited to the relative cost of each keyword, todetermine (7166) a set of keywords that optimally targets the desiredaudience utilizing a cost function similar to the cost functionsdiscussed above. The optimal set of keywords can then be returned (7168)by the targeting system and provided to the online social network by theadvertiser to enable the targeting of the offer.

The process described with respect to FIG. 7 relies upon the creation ofan index of members that is a statistically significant sample of theuniverse of members of a specific online social network. In severalembodiments, a list of N keywords is manually generated or generated bynatural language processing of relevant sources of information and thenthe list is used to query a web indexing service, such as the Googleservice provided by Google, Inc., using each keyword and each pair ofkeywords and then counting the number of “hits” within a socialnetworking service. Such a process can be more computationally efficientfor a targeting system; however, the process relies upon the extent towhich the web indexing service is caching activity on the socialnetwork. Therefore, the number of hits may not be a reliable indicationof the extent to which a specific keyword targets members of an onlinesocial network.

In many instances, audience splitting can be used to provide moreaccurate matches within specific demographic categories. Whensufficiently rich indexing information is acquired, a targeting systemcan independently optimize for different audiences based upondemographics and compare the predicted effectiveness of the offers basedupon the normalized cost functions of the optimal targeting informationfor each demographic (i.e. comparing measures of how well the targetingkeywords match the desired audience in each demographic). In this way,the amount of advertising to different demographics can be determinedbased upon the predicted performance of advertising targeting eachdemographic. The numbers of “hits” can then be utilized in the selectionof an optimal set of keywords in the manner outlined above.

Building an Advertising Campaign Using an Advertising Strategy

Advertising campaign creation processes in accordance with embodimentsof the invention involve a user providing an advertising strategy thatcan be utilized to target advertising in accordance with a specificbusiness objective. Possible strategies include but are not limited totargeting fans of an offer (i.e. members of the social network that haveexpressed strong affinity to an offer of named entity), target membersinterested in a competitor (i.e. members of the social network that haveexpressed affinity to a competitor), target members interested in anindustry (i.e. members of the social network that have expressedaffinity with keywords and/or named entities strongly associated with aspecific industry), and addressing negativity within an online socialnetwork (i.e. targeting members that have expressed a negative affinityto an offer or named entity). The strategies are implemented by applyingweights to targeted members to skew the targeting information used togenerate an advertising campaign to achieving a specific objective. Thestrategies that can be employed are only limited to the extent that theycan be expressed as weightings with respect to specific profiled membersof a social network and can include complex strategies such as (but notlimited to) differentiating an offer from competitors (i.e. giving ahigher weighting to members “furthest” from clusters).

A process for automatically generating an advertising campaign inaccordance with an embodiment of the invention is illustrated in FIG. 8.The process 800 assumes that clusters of members of one or more socialnetworks have been formed using information concerning affinitiesbetween specific users and specific keywords. An advertising strategy isreceived (802) from a user and the advertising strategy is transformed(804) into a set of weights that are applied to the members in theclusters. Processes similar to those outlined above can then be used togenerate targeting keywords that target the members of the clusters in amanner that reflects the weights assigned to each member by theadvertising strategy.

Weighting members when generating targeting information results in anumber of advertising targeting groups, each with contextual informationconcerning the words and phrases used by that audience. In manyembodiments, the user is alerted that these targets and pieces ofcontextual information are ready, which may be days or weeks after theuser initially started collecting targeting information. At which point,the user can provide advertising content, which may be inspired by theadjectives and phrases surfaced from each group. The system has alreadygrouped a naturally occurring target audience, and allows the user tobuild a creative using a voice that resonates with the audience. Oncethe advertising content is created, the advertisements are ready to beplaced on an advertising network using the collected targetinginformation.

Although a specific process for automatically generating an advertisingcampaign in accordance with an embodiment of the invention isillustrated in FIG. 8 any of a variety of processes can be utilized thatmodify the targeting information returned using affinity informationbased upon specific advertising strategies in accordance withembodiments of the invention.

Although the present invention has been described in certain specificaspects, variations to the embodiments presented herein are possiblewithout departing from the spirit and scope of the present invention.For example, indexing can be performed across multiple online socialnetworks for the purpose of generating targeting keywords for offerspresented by a single online social network or multiple online socialnetworks. In addition, indexing can be performed across a single onlinesocial network and used to generate targeting information for offerspresented via a different online social network. Thus, embodiments ofthe present invention should be considered in all respects asillustrative and not restrictive.

What is claimed:
 1. An advertising targeting system, comprising: a targeting server configured to obtain data from at least one server that forms part of an online social network, where the obtained data describes member profiles of members of the online social network and activities performed on the online social network that are associated with the member profiles; wherein the targeting server is configured to detect affinities between a member profile and one or more keywords based upon data describing activities associated with the member profile; wherein the targeting server is configured to generate a database containing the member profiles and associating detected affinities between member profiles and keywords; wherein the targeting server is configured to identify member profiles within the database that are associated with an affinity to at least one offer keyword; wherein the targeting server is configured to identify other keywords for which the identified member profiles have an associated affinity; wherein the targeting server is configured to receive an advertising strategy and to weight the importance of the identified member profiles in accordance with the advertising strategy; wherein the targeting server is configured to select a set of targeting keywords from the set of keywords for which the identified member profiles have an associated affinity based upon the weighted importance of the identified member profiles; and wherein the targeting server is configured to provide the targeting keywords to a server that is part of the online social network so that the online social network displays the specific offer to members of the online social network targeted using the targeting keywords.
 2. The advertising targeting system of claim 1, wherein the targeting server is configured to score the affinity between a member profile and one or more keywords within data describing an activity associated with the member profile.
 3. The advertising targeting system of claim 2, wherein the targeting server is configured to determine sentiment related to one or more keywords within data describing an activity associated with a member profile.
 4. The advertising targeting system of claim 2, wherein the targeting server is configured to determine intent related to one or more keywords within data describing an activity associated with a member profile.
 5. The advertising targeting system of claim 1, wherein the targeting server is configured to select a set of keywords by clustering the member profiles identified as having associations with an affinity to at least one offer keyword.
 6. The advertising targeting system of claim 5, wherein the targeting server is configured to assign a feature vector to each of the identified keywords and to estimate the performance of the feature vector in targeting the specific offer to the desired audience.
 7. The advertising targeting system of claim 6, wherein the feature vector assigned to each of the identified keywords includes information concerning trends associated with the keyword.
 8. The advertising targeting system of claim 7, wherein the information concerning trends associated with the keyword include amplitude and frequency information related to at least one peak in the frequency spectrum of a keyword.
 9. The advertising targeting system of claim 8, wherein the frequency spectrum of the keyword is obtained by performing a discrete Fourier transform on counts of the number of occurrences of the keyword during periodic time intervals.
 10. The advertising targeting system of claim 6, wherein the feature vector of a keyword includes at least one value indicative of a relationship between the keyword and at least one of the offer keywords.
 11. The advertising targeting system of claim 6, wherein the feature vector of a keyword includes at least one value indicative a relationship between the keyword and at least one cluster of member profiles.
 12. The advertising targeting system of claim 5, wherein the targeting server is configured to estimate the performance of the feature vector in targeting the specific offer to the desired audience using a classifier.
 13. The advertising targeting system of claim 5, wherein the targeting server is configured to estimate performance by estimating the click-through rate of advertising targeted using the keyword.
 14. The advertising targeting system of claim 1, wherein the targeting server is configured to select a set of targeting keyword and demographic information combinations.
 15. The advertising targeting system of claim 1, wherein the targeting server is configured to select a set of optimal targeting keywords using set completion.
 16. A method of targeting a specific offer, comprising: indexing member profiles within one or more social networks for affinity to keywords using a targeting system that retrieves data concerning member profiles and activities from servers within an online social network; identifying member profiles that have affinity for at least one offer keyword using the targeting system and the index; identifying additional keywords for which the identified member profiles have affinity using the targeting system and the index; weighting member profiles in accordance with a specified advertising strategy; determining a set of keywords that target a desired audience based upon the identified additional keywords and the weighted member profiles using the targeting server; and targeting presentation of advertisements for the specific offer to members of an online social network using the online social network and the targeting keywords determined by the targeting server. 